package com.tqjc.system.system.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.tqjc.system.common.constant.ConfigConstant;
import com.tqjc.system.common.entity.BO.ConfigInfoBO;
import com.tqjc.system.system.dao.SysConfigDao;
import com.tqjc.system.system.entity.SysConfigEntity;
import com.tqjc.system.system.service.SysConfigService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @author 86195
 * @version 1.0
 * @description 配置类服务
 * @date 2023/9/21 11:15
 */
@Service
public class SysConfigServiceImpl extends ServiceImpl<SysConfigDao, SysConfigEntity> implements SysConfigService {
    @Override
    public List<SysConfigEntity> getConfigInfoByType(String type) {
        return baseMapper.selectList(new LambdaQueryWrapper<SysConfigEntity>().eq(SysConfigEntity::getConfigStatus, ConfigConstant.CONFIG_STATUS_EFFECTIVE)
                .eq(SysConfigEntity::getConfigType, type));
    }

    @Override
    public SysConfigEntity getConfigInfo(String type, String configId) {
        return baseMapper.selectOne(new LambdaQueryWrapper<SysConfigEntity>().eq(SysConfigEntity::getConfigStatus, ConfigConstant.CONFIG_STATUS_EFFECTIVE)
                .eq(SysConfigEntity::getConfigType, type).eq(SysConfigEntity::getConfigId, configId));
    }

    @Override
    public IPage<SysConfigEntity> index(Page<SysConfigEntity> pageEntity, ConfigInfoBO configInfoBO) {
        LambdaQueryWrapper<SysConfigEntity> queryWrapper = new LambdaQueryWrapper<SysConfigEntity>()
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigId()), SysConfigEntity::getConfigId, configInfoBO.getConfigId())
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigValue()), SysConfigEntity::getConfigValue, configInfoBO.getConfigValue())
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigType()), SysConfigEntity::getConfigType, configInfoBO.getConfigType())
                .eq(StringUtils.isNotEmpty(configInfoBO.getConfigStatus()), SysConfigEntity::getConfigStatus, configInfoBO.getConfigStatus());
        return baseMapper.selectPage(pageEntity,queryWrapper);
    }
}
